package cn.wolfcode.service;

import cn.wolfcode.domain.SeckillProductVo;

import java.util.List;


public interface ISeckillProductService {
    /**
     * 根据传入的时间,查询对应时间的秒杀商品信息
     * @param time 秒杀时间
     * @return
     */
    List<SeckillProductVo> selectByTime(Integer time);

    /**
     * 根据传入的场次,去redis中查询对应的秒杀商品信息
     * @param time
     * @return
     */
    List<SeckillProductVo> queryByTime(int time);

    /**
     * 根据场次, 秒杀商品id 查询对应的 vo对象, 在前端页面回显
     * @param time  场次
     * @param seckillId 秒杀产品id
     * @return
     */
    SeckillProductVo find(Integer time, Long seckillId);

    /**
     * 库存 -1 操作
     * @param seckillId
     */
    int descStock(Long seckillId);

    /**
     * 回补库存
     * @param seckillId 秒杀商品id
     * @param time  场次
     */
    void asysBackRedisStockCount(Long seckillId, Integer time);

    /**
     * 库存 +1
     * @param seckillId
     */
    void incrStockCount(Long seckillId);
}
